package com.tangruojie.filter;

import jakarta.servlet.*;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;

import java.io.IOException;

/**
 * 响应增强过滤器
 */
@Component
public class ResponseEnhanceFilter implements Filter {

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
        // 在继续执行过滤器链之前，可以设置一些通用的响应头
        // 这些头信息会对所有经过此过滤器的响应生效
        httpResponse.setHeader("X-Application-Name", "My Spring Boot App");
        httpResponse.setHeader("X-API-Version", "1.0");
        // 继续执行过滤器链（包括最终的 Controller）
        filterChain.doFilter(servletRequest, servletResponse);
        // 过滤器链执行完毕后，可以进一步处理响应
        // 例如：记录响应状态、添加更多的响应头等
        httpResponse.setHeader("X-Response-Status", "Processed");
    }

}
